"""
a=123
print(bin(a)) #功能 将整数转化为二进制
print(hex(a)) #功能 将整数转化为十六进制
print(oct(a)) #功能 将整数转化为八进制


def use_boll():
    print(True)
    print(False)


use_boll()

int=10
print(int)
print(type(int))
float=3.1
print(float)
print(type(float))
str="hello"
print(str)
print(type(str))
boll=True
print(boll)
print(type(boll))

sum=0
for i in range(1,101):
    if i%2 !=0: #判断是否为奇数
        sum=sum+i
print('1到100之间的奇数求和:',sum)

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={i*j}", end="\n")
"""
# 关键代码注释
s=int(input("输入整数"))
bin_s=bin(s)

if s>=0:
    #正数补码=正数原码
    num=bin_s.count('1')
else:
    #对于负数，求补码中1的个数
    # 取负数绝对值的二进制形式，然后计算其中0的个数，用64减去这个值得到1的个数
    num=64-bin(-s-1).count('1')   #64位，-s-1为原负数补码取反加1，此处为求补码过程

print("%d 的2进制中1的个数为%d" %(s,num))